home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 September / PCWorld_2008-09_cd.bin / v cisle / sadanastroju / interclue-1.5.6-fx.xpi / chrome / interclue / content / common.js next >
Text File  |  2008-06-03  |  2KB  |  76 lines

  1.  
  2. function $(id){
  3.     return document.getElementById(id);
  4. }
  5.  
  6.  
  7. this.interclue = this.interclue || {};
  8.  
  9. /**
  10. * get a handle to the most resent browser window
  11. */
  12. interclue.getBrowser = function(){
  13.     var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
  14.     return wm.getMostRecentWindow("navigator:browser");
  15. }
  16.  
  17. /**
  18. * return Klib if is exists and is ready 
  19. */
  20. interclue.getKlib = function(){
  21.     var iframe = $('interclue-iframe') 
  22.     
  23.     //if this is a dialog, then use the latest browser window
  24.     if (!iframe){
  25.         var browser = interclue.getBrowser();
  26.         iframe = browser.document.getElementById('interclue-iframe');
  27.     }
  28.     
  29.     if (iframe && iframe.contentWindow && iframe.contentWindow.Klib && iframe.contentWindow.Klib.initalized){
  30.         return iframe.contentWindow.Klib;
  31.     }
  32.     else {
  33.         return null;
  34.     }
  35. }
  36.  
  37. /**
  38. * extracts key/value pairs from a string
  39. */
  40. interclue.extractKeyValuePairs = function(str, separator, convertDatatypes){
  41.     separator = separator || '&';
  42.     var regex = new RegExp("\\s*"+ Klib.escapeRegExStr(separator) +"\\s*", "ig");
  43.     var pairs = {};
  44.     var sections = str.split(regex);
  45.     for (var i=0; i<sections.length; i++){
  46.         var keyValue = sections[i].split(/=/);
  47.         var key = keyValue[0];
  48.         var value = keyValue[1];
  49.         
  50.         if (convertDatatypes){
  51.             if (value.match(/^\d+\.\d+$/)){
  52.                 value = parseFloat(value);
  53.             }
  54.             else if (value.match(/^\d+$/)){
  55.                 value = parseInt(value);
  56.             }
  57.             else if (value.match(/^true$/i)){
  58.                 value = true;
  59.             }
  60.             else if (value.match(/^false$/i)){
  61.                 value = false;
  62.             }
  63.         }
  64.  
  65.         if (key.substr(-2) == "[]"){
  66.             //value is supposed to be an array of values.
  67.             key = key.substr(0, key.length -2);
  68.             pairs[key] = pairs[key] || [];
  69.             pairs[key].push(value);
  70.         }
  71.         else {
  72.             pairs[key] = value;
  73.         }
  74.     }
  75.     return pairs;
  76. }